#ifndef __APP_HW_H__
#define __APP_HW_H__

#include "fr30xx.h"

extern UART_HandleTypeDef uart_log_handle;
extern DMA_HandleTypeDef dma_display_handle;
extern SPI_HandleTypeDef spi_display_handle;
extern I2C_HandleTypeDef i2c_touchpad_handle;
extern SPI_HandleTypeDef spi_flash_handle;
extern DMA_HandleTypeDef dma_flash_handle;

void hw_log_init(bool wake_up);
void hw_display_init(bool wake_up);
void hw_touchpad_init(bool wake_up);
void hw_psram_init(bool wake_up);
void hw_external_flash_init(bool wake_up);
void hw_xip_flash_init(bool wake_up);
void hw_dsp_xip_flash_init(bool wake_up);

void hw_clock_init(void);

void hw_gpio_save(void);
void hw_gpio_restore(void);

void hw_dsp_restore(void);

#endif  // __APP_HW_H__
